/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.dao;

import br.com.deployment.daogenerico.DaoGenerico;
import br.com.deployment.entidade.registroimovel.Titulo;
import br.com.deployment.interfaces.TituloDaoIn;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;

/**
 *
 * @author luciano
 */
@Stateless
@LocalBean
public class TituloDao extends DaoGenerico<Titulo> implements TituloDaoIn{

    public TituloDao() {
        super(Titulo.class);
    }
    
    public Titulo verificaPrimeiroTitulo(int id){
        Titulo t = new Titulo();
        
        Query q = getEm().createQuery("Select MIN(t.id) from Titulo t where t.id = :id");
        q.setParameter("id", id);
        
        Integer aux = Integer.parseInt(q.getSingleResult().toString());
        
        Query q1 = getEm().createQuery("Select t from Titulo t where t.id = :id");
        q1.setParameter("id", aux);
        
        t = (Titulo) q1.getResultList().get(0);
        
        return t;
    }
    
     public List<Titulo> findTitulo(Titulo titulo) {
        List<Titulo> lstTitulo = new ArrayList<Titulo>();
        String sql = "Select t from Titulo t where 1=1";
        
        if(titulo.getNome() != null){
            sql += " and lower(t.nome) like lower(:nome) ";
        }
        if(titulo.getDescricao() != null){
            sql += " and lower(t.descricao) like lower(:descricao) ";
        }
        
        Query q = getEm().createQuery(sql);
        if(titulo.getNome() != null){
            q.setParameter("nome", "%"+titulo.getNome()+"%");
        }
        if(titulo.getDescricao() != null){
            q.setParameter("descricao", "%"+titulo.getDescricao()+"%");
        }
        
        lstTitulo = q.getResultList();
        return lstTitulo;
        
    }
}
